home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / man / lib / tk / ManageGeom.man < prev    next >
Encoding:
Text File  |  1992-08-24  |  6.6 KB  |  258 lines

  1. '\"
  2. '\" Copyright 1990 Regents of the University of California
  3. '\" Permission to use, copy, modify, and distribute this
  4. '\" documentation for any purpose and without fee is hereby
  5. '\" granted, provided that this notice appears in all copies.
  6. '\" The University of California makes no representations about
  7. '\" the suitability of this material for any purpose.  It is
  8. '\" provided "as is" without express or implied warranty.
  9. '\" 
  10. '\" $Header: /user6/ouster/wish/man/RCS/ManageGeom.man,v 1.3 91/12/06 10:39:22 ouster Exp $ SPRITE (Berkeley)
  11. '\" 
  12. .\" The definitions below are for supplemental macros used in Sprite
  13. .\" manual entries.
  14. .\"
  15. .\" .HS name section [date [version]]
  16. .\"    Replacement for .TH in other man pages.  See below for valid
  17. .\"    section names.
  18. .\"
  19. .\" .AP type name in/out [indent]
  20. .\"    Start paragraph describing an argument to a library procedure.
  21. .\"    type is type of argument (int, etc.), in/out is either "in", "out",
  22. .\"    or "in/out" to describe whether procedure reads or modifies arg,
  23. .\"    and indent is equivalent to second arg of .IP (shouldn't ever be
  24. .\"    needed;  use .AS below instead)
  25. .\"
  26. .\" .AS [type [name]]
  27. .\"    Give maximum sizes of arguments for setting tab stops.  Type and
  28. .\"    name are examples of largest possible arguments that will be passed
  29. .\"    to .AP later.  If args are omitted, default tab stops are used.
  30. .\"
  31. .\" .BS
  32. .\"    Start box enclosure.  From here until next .BE, everything will be
  33. .\"    enclosed in one large box.
  34. .\"
  35. .\" .BE
  36. .\"    End of box enclosure.
  37. .\"
  38. .\" .VS
  39. .\"    Begin vertical sidebar, for use in marking newly-changed parts
  40. .\"    of man pages.
  41. .\"
  42. .\" .VE
  43. .\"    End of vertical sidebar.
  44. .\"
  45. .\" .DS
  46. .\"    Begin an indented unfilled display.
  47. .\"
  48. .\" .DE
  49. .\"    End of indented unfilled display.
  50. .\"
  51. '\"    # Heading for Sprite man pages
  52. .de HS
  53. .if '\\$2'cmds'       .TH \\$1 1 \\$3 \\$4
  54. .if '\\$2'lib'        .TH \\$1 3 \\$3 \\$4
  55. .if '\\$2'tcl'        .TH \\$1 3 \\$3 \\$4
  56. .if '\\$2'tk'         .TH \\$1 3 \\$3 \\$4
  57. .if t .wh -1.3i ^B
  58. .nr ^l \\n(.l
  59. .ad b
  60. ..
  61. '\"    # Start an argument description
  62. .de AP
  63. .ie !"\\$4"" .TP \\$4
  64. .el \{\
  65. .   ie !"\\$2"" .TP \\n()Cu
  66. .   el          .TP 15
  67. .\}
  68. .ie !"\\$3"" \{\
  69. .ta \\n()Au \\n()Bu
  70. \&\\$1    \\fI\\$2\\fP    (\\$3)
  71. .\".b
  72. .\}
  73. .el \{\
  74. .br
  75. .ie !"\\$2"" \{\
  76. \&\\$1    \\fI\\$2\\fP
  77. .\}
  78. .el \{\
  79. \&\\fI\\$1\\fP
  80. .\}
  81. .\}
  82. ..
  83. '\"    # define tabbing values for .AP
  84. .de AS
  85. .nr )A 10n
  86. .if !"\\$1"" .nr )A \\w'\\$1'u+3n
  87. .nr )B \\n()Au+15n
  88. .\"
  89. .if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
  90. .nr )C \\n()Bu+\\w'(in/out)'u+2n
  91. ..
  92. '\"    # BS - start boxed text
  93. '\"    # ^y = starting y location
  94. '\"    # ^b = 1
  95. .de BS
  96. .br
  97. .mk ^y
  98. .nr ^b 1u
  99. .if n .nf
  100. .if n .ti 0
  101. .if n \l'\\n(.lu\(ul'
  102. .if n .fi
  103. ..
  104. '\"    # BE - end boxed text (draw box now)
  105. .de BE
  106. .nf
  107. .ti 0
  108. .mk ^t
  109. .ie n \l'\\n(^lu\(ul'
  110. .el \{\
  111. .\"    Draw four-sided box normally, but don't draw top of
  112. .\"    box if the box started on an earlier page.
  113. .ie !\\n(^b-1 \{\
  114. \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
  115. .\}
  116. .el \}\
  117. \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
  118. .\}
  119. .\}
  120. .fi
  121. .br
  122. .nr ^b 0
  123. ..
  124. '\"    # VS - start vertical sidebar
  125. '\"    # ^Y = starting y location
  126. '\"    # ^v = 1 (for troff;  for nroff this doesn't matter)
  127. .de VS
  128. .mk ^Y
  129. .ie n 'mc \s12\(br\s0
  130. .el .nr ^v 1u
  131. ..
  132. '\"    # VE - end of vertical sidebar
  133. .de VE
  134. .ie n 'mc
  135. .el \{\
  136. .ev 2
  137. .nf
  138. .ti 0
  139. .mk ^t
  140. \h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
  141. .sp -1
  142. .fi
  143. .ev
  144. .\}
  145. .nr ^v 0
  146. ..
  147. '\"    # Special macro to handle page bottom:  finish off current
  148. '\"    # box/sidebar if in box/sidebar mode, then invoked standard
  149. '\"    # page bottom macro.
  150. .de ^B
  151. .ev 2
  152. 'ti 0
  153. 'nf
  154. .mk ^t
  155. .if \\n(^b \{\
  156. .\"    Draw three-sided box if this is the box's first page,
  157. .\"    draw two sides but no top otherwise.
  158. .ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
  159. .el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
  160. .\}
  161. .if \\n(^v \{\
  162. .nr ^x \\n(^tu+1v-\\n(^Yu
  163. \kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
  164. .\}
  165. .bp
  166. 'fi
  167. .ev
  168. .if \\n(^b \{\
  169. .mk ^y
  170. .nr ^b 2
  171. .\}
  172. .if \\n(^v \{\
  173. .mk ^Y
  174. .\}
  175. ..
  176. '\"    # DS - begin display
  177. .de DS
  178. .RS
  179. .nf
  180. .sp
  181. ..
  182. '\"    # DE - end display
  183. .de DE
  184. .fi
  185. .RE
  186. .sp .5
  187. ..
  188. .HS Tk_ManageGeometry tk
  189. .BS
  190. .SH NAME
  191. Tk_ManageGeometry \- arrange to handle geometry requests for a window
  192. .SH SYNOPSIS
  193. .nf
  194. \fB#include <tk.h>\fR
  195. .sp
  196. \fBTk_ManageGeometry\fR(\fItkwin, proc, clientData\fR)
  197. .SH ARGUMENTS
  198. .AS Tk_GeometryProc clientData
  199. .AP Tk_Window tkwin in
  200. Token for window to be managed.
  201. .AP Tk_GeometryProc *proc in
  202. Procedure to invoke to handle geometry requests on \fItkwin\fR, or
  203. NULL to indicate that \fItkwin\fR's geometry shouldn't be managed
  204. anymore.
  205. .AP ClientData clientData in
  206. Arbitrary one-word value to pass to \fIproc\fR.
  207. .BE
  208.  
  209. .SH DESCRIPTION
  210. .PP
  211. \fBTk_ManageGeometry\fR arranges for \fIproc\fR to be invoked
  212. whenever \fBTk_GeometryRequest\fR is called to change the desired
  213. geometry for \fItkwin\fR.  \fBTk_ManageGeometry\fR is typically
  214. invoked by geometry managers when they take control of a window's
  215. geometry.
  216. .PP
  217. \fIProc\fP should have arguments and results that match the
  218. type \fBTk_GeometryProc\fR:
  219. .nf
  220. .RS
  221. typedef void Tk_GeometryProc(
  222. .RS
  223. ClientData \fIclientData\fR,
  224. Tk_Window \fItkwin\fR);
  225. .RE
  226. .RE
  227. .fi
  228. The parameters to \fIproc\fR will be identical to the
  229. corresponding parameters passed to \fBTk_ManageGeometry\fR.
  230. Typically, \fIclientData\fR points to a data
  231. structure containing application-specific information about
  232. how to manage \fItkwin\fR's geometry.
  233. .PP
  234. \fIProc\fR will be called during each call to \fBTk_GeometryRequest\fR
  235. for \fItkwin\fR.  \fIProc\fR can use macros like \fBTk_ReqWidth\fR
  236. to retrieve the arguments passed to \fBTk_GeometryRequest\fR.  It
  237. should do what it can to meet the request, subject to the space
  238. available in \fItkwin\fR's parent and its own policies for managing geometry.
  239. If \fIproc\fR can meet the request, it should call procedures like
  240. \fBTk_ResizeWindow\fR or \fBTk_MoveWindow\fR to carry out the actual
  241. geometry change.  In some cases it may make sense for \fIproc\fR not
  242. to process the geometry request immediately, but rather to schedule a
  243. procedure to do it later, using \fBTk_DoWhenIdle\fR.  This approach
  244. is likely to be more efficient in situations where several geometry
  245. requests occur simultaneously:  only a single geometry change will
  246. be made, after all the requests have been registered.
  247. .PP
  248. If \fIproc\fR is specified as NULL, then the geometry handler for
  249. \fItkwin\fR will be eliminated, leaving \fItkwin\fR unmanaged.
  250. Calls to \fBTk_GeometryRequest\fR have no effect for unmanaged
  251. windows except to store the requested size in a structure where
  252. they can be retrieved by macros like \fBTk_ReqWidth\fR.  If
  253. \fBTk_GeometryRequest\fR has never been invoked for a window then
  254. it is unmanaged.
  255.  
  256. .SH KEYWORDS
  257. callback, geometry, managed, request, unmanaged
  258.